package com.itheima.test1;

public class Test6 {
    public static void main(String[] args) {
        /*
        案例6：数字加密
        需求：某系统的数字密码（大于0），比如1983，采用加密方式进行传输。
        规则如下：先得到每位数，然后每位数都加上5，再对10求余，最后将所有数字反转，得到一串新数
         */
        //分析：
        //1.把整数里的每一位放到数组当中
        int[] arr = {1,9,8,3};
        //2.加密
        //每位数加上5
        for (int i = 0; i < arr.length; i++) {
            arr[i] += 5;
        }
        //对10求余
        for (int i = 0; i < arr.length; i++) {
            arr[i] %= 10;
        }
        //将所有的数字反转
        for(int i = 0,j = arr.length-1;i < j;i++,j--){
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        //3.把数组里面的每一个数字进行拼接，变成加密之后的结果
        int number = 0;
        for (int i = 0; i < arr.length; i++) {
            //arr[i]
            number = number * 10 + arr[i];
        }
        System.out.println("加密之后的结果是：" + number);

    }
}
/*1.把整数里的每一位放到数组当中
1.计算出数组的长度
int number = 12345;
定义一个变量临时记录number的值，就是为了第三步的时候再次使用
int temp = number;
//定义一个变量进行统计
int count = 0;
while(number != 0){
    //每一次循环就去掉右边的一个数字
    number /= 10;
    //去掉一位计数器就自增一次。
    count++;
}
2.定义数组
动态初始化
int[] arr = new int[count];
3.把整数上的每一位都添加到数组当中
int index = arr.length - 1;
while(temp != 0){//12345
    //获取temp里面的每一位数组
    int ge = temp % 10;
    //再次去掉右边的那位数字
    temp /= 10;
    //把当前获取到的个位添加到数组当中
    arr[index] = ge;
    index--;
}



*/
